#ifndef GUI_OBJECT_H_INCLUDED
#define GUI_OBJECT_H_INCLUDED

#include "Vec2.h"
#include <string>

class File;

class GUIObject
{
public:
	GUIObject();
	~GUIObject();
	bool IsActivated() const { return m_active; }
	void SetActivate(bool b) { m_active = b; }

	virtual void Draw() = 0;
	virtual bool Load(File* const f) = 0;
	virtual const char* GetTypeName() = 0;
	virtual void Update() {}

	Vec2f GetDims();
	void SetDims(const Vec2f& dims);

	void SetTexPath(const std::string& tex);

	void CoordConvert();

	const Vec2f& GetPos();
	void SetPos(const Vec2f& pos);
	
protected:
	std::string m_texPath;
	bool m_active;
	Vec2f m_pos;

	Vec2f m_dimensions;
	Vec2f m_maxPos;

	Vec2i m_SDLmouseCoord;
	Vec2f m_OGLmouseCoord;
};

#endif